السلام عليكم
في هذا الشرح بسيط سنتعلم سوياً كيفية عمل RESTful API عن طريق node و express
الAPI اختصار لـ “Application Programming Interface” وهي عبارة عن واجهة برمجية تبنيها ومن ثم تقوم بعمل implementation لها باي لغة او على اي platform تريده.
ومعنى RESTful API وهي اختصار لـ “Representational state transfer” وسيلة لنقل البيانات بين السيرفر والمستخدم باستخدام افعال HTTP المعروفة مثل: POST , GET , PUT , DELETE
سنقوم بعمل API بسيطة تقوم بجلب وتخزين بيانات شركات وارقام هواتفها بالاستعانة بـMongoDB و الحزمة الخاصة بها Mongoose.
سافترض انك قمت بتثبيت npm ونواة node
الdependencies او node packages التي سنحتاجها :
- – express وهي الـframework المبني على node.js الذي سنقوم باستخدامه
- – mongoose وهي الـ package الخاصة بالتعامل مع MongoDB
- – body-parser وهي الخاصة باستقبال البيانات المرسلة عبر التطبيق
- – morgan وهي الخاصة بتتبع الrequests و الresponse في تطبيقنا
في البداية ننشئ مجلد للمشروع ونسميه وليكن Company Project
وننتقل بال cmd الى داخله
ومن ثم نشرع في بدا المشروع عن طريق امر :
npm init
ساترك البيانات الاساسية كما هي , يمكنك تغيير ماتريد منها
ونكتب yes او نضغط Enter
نلاحظ بعدها ظهور ملف package.json الذي يحتوي على الاعدادات التي قمنا باختيارها مسبقا
كما ذكرنا سابقا اننا سنحتاج لـ node packages لكي نعمل عليها
فنقوم بكتابة الامر التالي
npm install express morgan body-parser mongoose --save
سنلاحظ تغير محتوى ملف package.json بالشكل التالي
وظهور ملف node_modules الذي يحتوي على ماقد طلبنا تحميله
ننشئ ملف جديد باسم index.js الذي كتبناه في ال entry point او كما اخترت اسمه لكي نعمل عليه
ونضيف فيه هذه الاكواد
//استدعاء كل الحزم التي سنحتاجها خلال العمل var express = require('express'); var bodyParser = require('body-parser'); var morgan = require('morgan'); var mongoose = require('mongoose'); //استحداث التطبيق الخاص بنا من خلال express var app = express(); //رقم البورت الخاص بالاتصال var PORT = process.env.PORT || 3000; //لكي ننتبع ال requests و response من خلال ال command line app.use(morgan('dev')); //استخدام bodyParser لكي نستطيع اخد الداتا المرسلة لنا app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); //تشغيل السيرفر على رقم البورت المختار app.listen(PORT,function(err){ if(err)console.log(err); console.log('connected on PORT '+PORT); });
شرح لما قمنا به :
اول قمنا باستدعاء الحزم التي قمنا بتحميلها سابقاً لكي نستطيع استخدامها في مشروعنا
قمنا باستحداث التطبيق الخاص بنا app من express الذي استدعيناه
قمنا بتعيين رقم لPORT الاتصال وهو اما يكون process.env.PORT اي يتم تعيينه مسبقاً من قبل اعدادات بيئة العمل المعينة التي تعمل عليها وان لم يكن يتم تعيين قيمته 3000. يمكنك تعيين اي قيمة تشاء
قمنا ايضا باستخدام morgan في مرحلة التطوير لكي نستطيع تتبع الrequests والresponse لها وستظهر على شاشة الcommand line سنراها سوياً
واخيراً استعملنا bodyParser لكي يمكننا من الوصول و استخدام اي بيانات ترسل للسيرفر فمثلا عند اضافات بيانات كإسم شخص ورقم هاتفه في فورم تسجيل هذه البيانات لن نستطيع الوصول اليها مباشرة بدون استخدام bodyParser وسنرى هذا مستقبلاً.
بعد ماضبطنا الاعدادات دعونا نجرب ماقمنا بعمله وهل التطبيق يعمل ام لا بتشغيله على PORT قمنا بتحديدها app.listen
وتوجد callback function اذا كان هناك اي مشاكل في الاتصال سيرجعها لنا ويطبعها.
وسيعلمنا انه اتصل على رقم البورت الذي حددناه, دعونا نجرب سويا.
احفظ ماقمنا به وشغل الcommand line واكتب node index.js
رائع! فتطبيقنا يعمل الان
يمكنك التجربة على متصفحك بالذهاب الى
localhost:3000
وستجد على الصفحة
Cannot GET /
فنحن لما نقم باضافة محتوى او اي شئ يمكنه عرضه.
واذا رجعنا لرؤية الcommand line مرة اخرى سنجد بيانات الRequest وماذا حصل وهذا بفضل حزمة Morgn اللي تتبع كل مايحصل.
يتبع في الجزء القادم …….
كيفية بناء RESTful API باستخدام Node.js و Express.js الجزء الثاني